package com.ruoyi.personal.domain;

import java.util.Date;


import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 个人信息管理对象 t_user
 *
 * @author qjp
 * @date 2024-09-11
 */

//@TableName(value = "t_user" )
public class User extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    //@TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 账号
     */
    @Excel(name = "账号")
    private String numid;

    /**
     * 用户名
     */
    @Excel(name = "用户名")
    private String username;

    /**
     * 邮箱
     */
    @Excel(name = "邮箱")
    private String email;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phoneNumber;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String headPortrait;

    /**
     * 身份证
     */
    @Excel(name = "身份证")
    private String idCard;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private String gender;

    /**
     * 出生日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "Asia/Shanghai")
    @Excel(name = "出生日期")
    private String birthday;

    /**
     * 等级
     */
    @Excel(name = "等级")
    private String grade;

    /**
     * 人员分类
     */
    @Excel(name = "人员分类")
    private String personnelClassification;

    /**
     * 正式编制
     */
    @Excel(name = "正式编制")
    private String formallyEstablished;

    /**
     * 部门名称
     */
    @Excel(name = "部门名称")
    private String departmentName;

    /**
     * 文化程度
     */
    @Excel(name = "文化程度")
    private String degreeEducation;

    /**
     * 主职务
     */
    @Excel(name = "主职务")
    private String mainDuties;

    /**
     * 籍贯
     */
    @Excel(name = "籍贯")
    private String nativePlace;

    /**
     * 民族
     */
    @Excel(name = "民族")
    private String nation;

    /**
     * 入党日期
     */
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "Asia/Shanghai")
    @Excel(name = "入党日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date joinPartyDate;

    /**
     * 入职日期
     */
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "Asia/Shanghai")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date joinWorkDate;

    /**
     * 政治面貌
     */
    @Excel(name = "政治面貌")
    private String politicalOutlook;

    /**
     * 婚姻
     */
    @Excel(name = "婚姻")
    private String marriage;

    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /**
     * 更新日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setNumid(String numid) {
        this.numid = numid;
    }

    public String getNumid() {
        return numid;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUsername() {
        return username;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setHeadPortrait(String headPortrait) {
        this.headPortrait = headPortrait;
    }

    public String getHeadPortrait() {
        return headPortrait;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getGender() {
        return gender;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getGrade() {
        return grade;
    }

    public void setPersonnelClassification(String personnelClassification) {
        this.personnelClassification = personnelClassification;
    }

    public String getPersonnelClassification() {
        return personnelClassification;
    }

    public void setFormallyEstablished(String formallyEstablished) {
        this.formallyEstablished = formallyEstablished;
    }

    public String getFormallyEstablished() {
        return formallyEstablished;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDegreeEducation(String degreeEducation) {
        this.degreeEducation = degreeEducation;
    }

    public String getDegreeEducation() {
        return degreeEducation;
    }

    public void setMainDuties(String mainDuties) {
        this.mainDuties = mainDuties;
    }

    public String getMainDuties() {
        return mainDuties;
    }

    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() {
        return nativePlace;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getNation() {
        return nation;
    }

    public void setJoinPartyDate(Date joinPartyDate) {
        this.joinPartyDate = joinPartyDate;
    }

    public Date getJoinPartyDate() {
        return joinPartyDate;
    }

    public void setJoinWorkDate(Date joinWorkDate) {
        this.joinWorkDate = joinWorkDate;
    }

    public Date getJoinWorkDate() {
        return joinWorkDate;
    }

    public void setPoliticalOutlook(String politicalOutlook) {
        this.politicalOutlook = politicalOutlook;
    }

    public String getPoliticalOutlook() {
        return politicalOutlook;
    }

    public void setMarriage(String marriage) {
        this.marriage = marriage;
    }

    public String getMarriage() {
        return marriage;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("numid", getNumid())
                .append("username", getUsername())
                .append("email", getEmail())
                .append("phoneNumber", getPhoneNumber())
                .append("headPortrait", getHeadPortrait())
                .append("idCard", getIdCard())
                .append("gender", getGender())
                .append("birthday", getBirthday())
                .append("grade", getGrade())
                .append("personnelClassification", getPersonnelClassification())
                .append("formallyEstablished", getFormallyEstablished())
                .append("departmentName", getDepartmentName())
                .append("degreeEducation", getDegreeEducation())
                .append("mainDuties", getMainDuties())
                .append("nativePlace", getNativePlace())
                .append("nation", getNation())
                .append("joinPartyDate", getJoinPartyDate())
                .append("joinWorkDate", getJoinWorkDate())
                .append("politicalOutlook", getPoliticalOutlook())
                .append("marriage", getMarriage())
                .append("createdAt", getCreatedAt())
                .append("updatedAt", getUpdatedAt())
                .toString();
    }
}
